A processing device in a computer system typically operates at a certain processing speed. The speed of the processing device can define the speed that the computer can carry out and execute computer programming instructions. For example, a computer with a processing speed of 1 GHZ can execute 1 billion programming instructions per second, while a computer with a processing speed of 2 GHZ can execute 2 billion programming instructions per second, and so on.
The computer system usually executes instructions based on the computer system clock rate. The kernel of the computer system should interact with the computer system's hardware to manage time. The computer system's hardware typically provides a system timer that the kernel uses to gauge the passage of time. This system timer can work off of an electronic time source, such as a digital clock or the frequency of a processing device in the computer system. Timer interrupts can be executed at a preprogrammed frequency, otherwise known as the tick rate. The tick rate is usually programmed into the kernel at the computer system start up or boot.
The tick rate can be statically defined, based on the system architecture. For example, the tick rate for kernel in an i386 computer architecture may be 1000 Hz (meaning that a timer interrupt on an i386 occurs every millisecond) while the tick rate for the kernel on an m68k may be 100 Hz (a timer interrupt occurs every 10 milliseconds).
A timer interrupt is an interrupt generated by an internal clock and is typically used for the management of the operating system. Many kernel functions execute operation functions based on the timer interrupt. Such functions include, for example, updating the system uptime, updating the time of day, ensuring that the scheduler run queues are balanced, and if not, balancing them, running any dynamic timers that have expired, and updating resource usage and processor time statistics. Some of these functions occur on every timer interrupt, that is, the work is carried out with the frequency of the tick rate. Other functions execute periodically, but only every n timer interrupts. That is, these functions occur at a multiple of the tick rate. Thus, the occurrence and execution of the timer interrupt operations are based on the tick rate in the kernel.
In order to save energy when the processing device is idle or during a period of inactivity, the processing device can be commanded to enter a low power mode during which all internal and external clocks are stopped and the processing device is in an inactive state. When the processing device is in a low power mode, the kernel does not process or execute any interrupt instructions, and as such, the tick rate is zero.
A kernel with a high tick rate (e.g., 1000 Hz) means a higher frequency for the timer interrupt. Consequently, the kernel with a high tick rate performs or executes timer functions more often than a kernel with a low tick rate (e.g., 100 Hz). This has the following benefits: 1) the timer interrupt has a higher resolution and, consequently, the timed events have a higher resolution; 2) the accuracy of timed events improves; 3) the higher tick rate improves performance because an application wastes less time waiting for the timer interrupt; and 4) the higher tick rate decreases process scheduling latency.
However, a kernel with a high tick rate implies more frequent timer interrupts, which implies higher overhead, because the processing device must spend more time executing the timer interrupt controller. The higher the tick rate, the more time the processor spends executing the timer interrupt. This adds up to not just less processor time available for other functions, but also a more frequent thrashing of the processor's cache, which consumes more power.